package com.muyu.system.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.muyu.system.enums.OperatingTypeEnum;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.NonNull;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;

import javax.validation.constraints.NotNull;

/**
 * 商家信息对象 dm_shopping_store
 *
 * @author ruoyi
 * @date 2025-01-13
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class DmShoppingStore extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    private Long id;

    /**
     * 用户id
     */
    @Excel(name = "用户id")
    private Long userId;

    /**
     * 商家名称
     */
    @Excel(name = "商家名称")
    private String name;

    /**
     * 营业状态（0：审核中，1：营业，2：停业  3:待缴费）
     */
    @Excel(name = "营业状态", readConverterExp = "0=：审核中，1：营业，2：停业  3：待缴费")
    private Long state;

    /**
     * 营业类型（1：三方，2：自营，3：混合）
     */
    @NotNull(message = "营业类型不能为空")
    private OperatingTypeEnum type;

    /**
     * 是否缴纳保证金（0：已缴纳，1：未缴纳）
     */
    @Excel(name = "商家类型", readConverterExp = "0=：拾贝，1：自由入驻，2：混合")
    private Long isBond;

    /**
     * 姓名
     */
    @Excel(name = "姓名")
    private String userName;

    /**
     * 身份证号
     */
    @Excel(name = "身份证号")
    private String idCard;

    /**
     * 身份证有效期
     */
    @Excel(name = "身份证有效期")
    private String idCardVld;

    /**
     * 身份证正面照片
     */
    @Excel(name = "身份证正面照片")
    private String idCardFront;

    /**
     * 身份证反面照片
     */
    @Excel(name = "身份证反面照片")
    private String idCardBack;

    /**
     * 营业执照照片
     */
    @Excel(name = "营业执照照片")
    private String businessLicensePic;

    /**
     * 营业执照号
     */
    @Excel(name = "营业执照号")
    private String businessLicenseNo;

    /**
     * 营业执照有效期
     */
    @Excel(name = "营业执照有效期")
    private String businessLicenseVld;

    /**
     * 银行卡号
     */
    @Excel(name = "银行卡号")
    private String bankNo;

    /**
     * 开户行
     */
    @Excel(name = "开户行")
    private String openBank;

    /**
     * 头像
     */
    @Excel(name = "头像")
    private String avatar;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    private String delFlag;


    @Excel(name = "粉丝数量")
    private Long fansNumber;

    /**
     * 是否关注 true：已关注 false：未关注
     */
    @TableField(exist = false)
    private Boolean isFollow;


    /**
     * 手机号
     */
    private Long tel;


    /**
     * 税务图片
     */
    private String taxImage;


    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("userId", getUserId())
                .append("name", getName())
                .append("state", getState())
                .append("userName", getUserName())
                .append("idCard", getIdCard())
                .append("idCardVld", getIdCardVld())
                .append("idCardFront", getIdCardFront())
                .append("idCardBack", getIdCardBack())
                .append("businessLicensePic", getBusinessLicensePic())
                .append("businessLicenseNo", getBusinessLicenseNo())
                .append("businessLicenseVld", getBusinessLicenseVld())
                .append("bankNo", getBankNo())
                .append("openBank", getOpenBank())
                .append("avatar", getAvatar())
                .append("delFlag", getDelFlag())
                .append("fansNumber", getFansNumber())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .toString();
    }
}
